#ifndef MESSAGETYPE_H
#define MESSAGETYPE_H

#include <QString>

//枚举类型相比宏的优势，是可以做类型检查
enum TaskType {
    TASK_SIGNUP_SECTION1 = 1,
    TASK_SIGNUP_SECTION1_RESP_OK,
    TASK_SIGNUP_SECTION1_RESP_ERROR,
    TASK_SIGNUP_SECTION2,
    TASK_SIGNUP_SECTION2_RESP_OK, // 5
    TASK_SIGNUP_SECTION2_RESP_ERROR,
    TASK_LOGIN_SECTION1,
    TASK_LOGIN_SECTION1_RESP_OK,
    TASK_LOGIN_SECTION1_RESP_ERROR,
    TASK_LOGIN_SECTION2, // 10
    TASK_LOGIN_SECTION2_RESP_OK,
    TASK_LOGIN_SECTION2_RESP_ERROR,
    TASK_GET_CODEC_PARAMS, // 请求音视频解码器参数
    TASK_GET_CODEC_PARAMS_RESP_OK, // 回复视频解码器参数
    TASK_GET_CODEC_PARAMS_RESP_ERROR, // 15
    TASK_GET_AVPACKET,
    TASK_GET_AVPACKET_RESP_OK,
    TASK_GET_AVPACKET_RESP_ERROR,
    TASK_GET_AUDIO_CODEC_PARAMS_RESP_OK, // 回复音频解码器参数
    TASK_STOP_RTMP, // 20, 停止查看RTMP实时流
    TASK_PTZ_CONTROL,
    TASK_PTZ_CONTROL_RESP_OK,
    TASK_PTZ_CONTROL_RESP_ERROR,
    TASK_GET_PLAYBACK_RANGE, // 获取服务器持有的录像文件时间范围
    TASK_GET_PLAYBACK_RANGE_OK, // 25
    TASK_GET_PLAYBACK_RANGE_ERROR,
    TASK_GET_PLAYBACK_AVPACKET,//查看回放
    TASK_GET_PALYBACK_CODEC_PARAMS, // 请求回放音视频解码器参数
    TASK_STM32_SENSORS,
};

struct Packet {
    Packet(): _type(0), _length(0), _msg() {}

    void clear() {
        _type = 0;
        _length = 0;
        _msg.clear();
    }

    int _type;
    int _length;
    QByteArray _msg;
};

#endif // MESSAGETYPE_H
